package com.ssy.lingxi.contract.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.contract.api.model.vo.request.PurchaseInviteBidAddVO;
import com.ssy.lingxi.contract.entity.PurchaseInviteBidDO;
import com.ssy.lingxi.contract.model.vo.common.request.PurchaseInviteBidPageVO;
import com.ssy.lingxi.contract.model.vo.common.response.PurchaseInviteBidQueryVO;

import java.util.List;

/**
 * 采购招标合同接口定义
 * @author 伍将
 * @date 2021/3/5
 * @version 2.0.0
 */
public interface IPurchaseInviteBidService {

    /**
     * 分页查询待创建采购招标合同
     * @author 伍将
     * @date 2021/3/5
     * @param user: 当前登录用户
     * @param pageVO: 分页请求参数
     * @return 操作结果
     **/
    Wrapper<PageData<PurchaseInviteBidQueryVO>> pageToBeCreate(UserLoginCacheDTO user, PurchaseInviteBidPageVO pageVO);

    /**
     * 批量新增采购招标合同
     * @author 伍将
     * @date 2021/3/5
     * @param addVOList: 新增请求参数
     * @return 操作结果
     **/
    Wrapper<Void> addList(List<PurchaseInviteBidAddVO> addVOList);

    /**
     * 检查采购报价合同是否已创建合同
     * @author 伍将
     * @date 2021/3/4
     * @param user: 当前登录用户
     * @param inviteBidId: 招标单id
     * @param bidWinnerMemberId: 中标会员id
     * @param bidWinnerRoleId: 中标会员角色id
     * @return 操作结果
     **/
    PurchaseInviteBidDO checkCreate(UserLoginCacheDTO user, Long inviteBidId, Long bidWinnerMemberId, Long bidWinnerRoleId);

    /**
     * 更新采购招标合同创建状态
     * @author 伍将
     * @date 2021/3/4
     * @param user: 当前登录用户
     * @param inviteBidId: 招标单id
     * @param bidWinnerMemberId: 中标会员id
     * @param bidWinnerRoleId: 中标会员角色id
     * @param: 创建合同：0-否，1-是
     * @return 操作结果
     **/
    Wrapper<Void> updateCreateStatus(UserLoginCacheDTO user, Long inviteBidId, Long bidWinnerMemberId, Long bidWinnerRoleId, Integer isCreate);
}
